Posts tagged with #Program Language

12 posts found

JavaScript 依赖注入

在开发中,一个类或模块通常需要依赖其他类或模块来完成工作。最直接的方式是在其内部直接创建依赖的实例。 ```javascript // 一个用于记录日志的服务 class Logger { log(message) { console. log(`[LOG]: ${message}`); } } // 用户服务,它需要使用 Logger class UserService {...

JavaScript 实现 Tic Tac Toe (2)

我们把 displayController 单独作为一个模块。这个模块完成了视图的工作、并提前做好一些绑定工作。 我们可以把一些固定的、不依赖特定情况的 DOM 操作先写好,这样就不需要在主文件 `script. js` 中写重复的代码了,主文件只需要负责把这些模块初始化、连接好即可。 我们把需要做绑定的组件传进来作为参数: ```javascript function...

npm 包管理器

npm 是 JavaScript **包管理器 (Package Manager)**。它主要由两部分组成: 1. **一个在线仓库 (Registry)**:一个巨大的、公开的数据库,存储了海量的、可重用的 JavaScript 代码包(Packages)。这些包可以是小型的辅助函数库(如 `lodash`),也可以是完整的前端框架(如 `React`, `Vue`)。 2...

JavaScript 实现 Tic Tac Toe (1)

> 第一部分主要讲解井字棋游戏初始化的一些东西,之后会讲一些技术性的东西。 下面我们通过实现一个简单的井字棋游戏来系统梳理一下前面的一些知识。 我们写一个最简单的 HTML 和 CSS: ```html <. doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport"...

js-module

在 ES6 模块出现之前,如果在 HTML 中引入多个 JavaScript 文件,它们会共享同一个全局作用域。这会导致变量命名冲突和不可预期的行为。 ```html <. html --> <script src="one...

JavaScript Class

在 ES6 之前,我们使用构造函数和原型链来实现对象的创建和继承。ES6 引入了 `class` 关键字,它提供了一种更清晰、更简洁的语法。 > Class 的底层实现仍然是基于原型继承。因此,`class` 被称为“语法糖”。 **构造函数 vs. Class 写法对比:** ```javascript // 传统构造函数写法 function Player(name, marker)...

闭包

JavaScript 有如下的作用域: - **全局作用域 (Global Scope)**: 在所有函数和代码块 `{}` 外面定义的变量,在代码的任何地方都可以被访问。 > 过度使用全局变量会造成“全局污染”。 - **函数作用域 (Function Scope)**: 使用 `var` 在一个函数内部声明的变量,它的“地盘”就是整个函数。 - **块级作用域 (Block...

CSS 基础

CSS (Cascading Style Sheets) 用于为 HTML 文档添加样式,控制网页的布局和外观。它通过一系列**规则 (rules)** 来实现。 CSS 的基本语法如下: 一条规则由一个**选择器 (selector)** 和一个**声明块 (declaration block)** 组成。声明块包含一个或多个由分号分隔的**声明**,每个声明都是一个 `属性: 值`...

HTML 基础

HTML (HyperText Markup Language) 定义了网页的结构和内容。我们使用 HTML 元素 (Elements) 来创建构成典型网页的所有段落、标题、列表、图像和链接。 HTML 标签 (Tags) 是定义网页结构和内容的基本构建块。它由如下部分组成: - **开标签 (Opening tags)**:告诉浏览器 HTML 元素的开始。它们由尖括号 `<>`...